Run-Time Metaobject Protocols: the Quest for their Holy Application
نویسنده
چکیده
Run-time MetaObject Protocols (MOPs) are reflective systems that allow objects to be controlled at run time by one or many metaobjects. These metaobjects can then alter the semantics of the execution for the base objects they control. Jumping to the meta level to alter the semantics is powerful but indeed fairly costly. It is therefore desirable to let users fine-tune their run-time MOP according to their specific needs. This is exactly what we are investigating in this PhD thesis: how to design and build an open run-time MOP. But although our intuition (or faith) never fails, it remains hard to definitely answer the realistic question of “what is this really good for?”. Therefore, we are also investigating applications of run-time MOPs that differentiate them from other program transformation approaches. Since we are worried about the applicability of run-time MOPs, all our work is done with the Java programming language, in a fully portable way. 1 What are run-time MOPs? Run-time MetaObject Protocols (MOPs) are reflective systems [11, 7] that allow objects to be controlled at run time by one or many metaobjects. These metaobjects can then alter the semantics of the execution for the objects they control. A classical example is that of a metaobject that controls method invocations on an object to trace them on a debug output. An object controlled by one or more metaobjects is called a reflective object. A reflective class is a class whose instances are reflective objects. From the point of view of the metaobject, the object it controls is called the base object. Characterizing a run-time MOP starts by specifying which language mechanisms are reified. Reifying means making something implicit explicit, that is to say, accessible as a first-class entity. In object-oriented class-based languages, the language mechanisms that can be reified are many: method invocation, field accesses, types checks, object creation, serialization, finalization, etc. Once reified, these mechanisms can be controlled at the metalevel. The set of mechanisms that a MOP is able to reify partially defines its expressiveness. Some simple run-time MOPs only offer the possibility to control method invocation on the receiver
منابع مشابه
A Metaobject Protocol for Optimizing Application-Specic Run-Time Variability
Just-in-time compilers and their aggressive speculative optimizations reduced the performance gap between dynamic and static languages drastically. To successfully speculate, compilers rely on the program variability observed at run time to be low, and use heuristics to determine when optimization is benecial. However, some variability paerns are hard to capture with heuristics. Specifically,...
متن کاملImplementation of an Event Based Run - TimeMetaobject
This paper presents the implementation of a framework to deene eecient dedicated Run Time Metaobject Protocols. Contrary to the classical MOPs approach we only provide a default hidden meta interface and let the programmer entirely free to customize his own metaobject interfaces. This design is simpliied by an event based framework that allows the programmer to transparently link the base level...
متن کاملUnification of Compile-time and Run-time Metaobject Protocols
In this paper, we propose the unification of compile-time and run-time Metaobject Protocols (MOPs), to improve the efficiency and flexibility of object-oriented operating systems. We also propose a reflective programming system, named Cognac, which employs unified MOPs and provides language and runtime facilities for the Apertos object-oriented distributed operating system. In Cognac, each obje...
متن کاملAspect-Oriented Programming using Reflection
What infrastructure is needed to support aspect-oriented software development? To the programmer, we must supply aspect-oriented (sub)languages that are based on the constructs and basic syntax that the programmer is most familiar with, as well as facilities for reifying and manipulating the cross-cutting features of immediate concern. At the implementation level, the aspect specifications must...
متن کاملA Metalevel Architecture for Dynamism and Reeection in C++
MetaObject Protocols (M.O.P) recently deened for C++ Chi93a] do not t the needs of evolution in DataBases Management Systems (D.B.M.S.). In this paper, we present DyReCT, an extension of C++ that allows instances migration, reeection and run-time classes modiications. Thanks to a metalevel, these new functionalities are transparent for the user. DyReCT should fulll our future needs for data per...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002